package com.example.config;

import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

@Configuration
public class PageHelperConfig {

    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        // 默认值为 false，当该参数设置为 true 时，会将 RowBounds 中的 offset 参数当成 pageNum 使用
        properties.setProperty("offsetAsPageNum", "true");
        // 默认值为 false，设置为 true 时，使用 RowBounds 分页会进行 count 查询
        properties.setProperty("rowBoundsWithCount", "true");
        // 设置为 true 时，如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果
        properties.setProperty("pageSizeZero", "true");
        // 启用合理化时，如果 pageNum < 1 会查询第一页，如果 pageNum > pages 会查询最后一页
        properties.setProperty("reasonable", "true");
        // 支持通过 Mapper 接口参数来传递分页参数
        properties.setProperty("supportMethodsArguments", "true");
        // 配置数据库方言
        properties.setProperty("dialect", "mysql");
        pageHelper.setProperties(properties);
        return pageHelper;
    }
} 